#ifndef _EMBEDDABLE_H_
#define _EMBEDDABLE_H_

/*
	namespace : Embeddable
	desc : This is a namespace used to help
	organize low level code such as malloc,
	alloc, realloc, and other things that need
	to be implemented but can have multiple implementations
	The idea here is to let the user choose which implementation
	they want to use through the namespace.

*/
namespace Embeddable
{
extern "C" void* embed_malloc(unsigned int __size);

extern "C" void* embed_calloc(unsigned int __nmemb, unsigned int __size);

extern "C" void* embed_realloc(void* __ptr, unsigned int __size);

extern "C" void embed_free(void* __ptr);

extern void* embed_memalign(unsigned int __alignment, unsigned int __size);

extern void* embed_valloc(unsigned int __size);

}

#endif
